package com.boss.salary.service.impl;

import com.boss.common.entity.PageDTO;
import com.boss.common.util.DateUtils;
import com.boss.framework.dto.PaginationDTO;
import com.boss.salary.dao.ISalPersonTypeDao;
import com.boss.salary.entity.SalPersonType;
import com.boss.salary.service.ISalPersonTypeService;
import com.boss.sys.utils.SysUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

@Service
public class SalPersonTypeServiceImpl implements ISalPersonTypeService {

    @Autowired
    private ISalPersonTypeDao iSalPersonTypeDao;

    @Override
    public PageDTO<SalPersonType> querySalPersonTypePage(PaginationDTO paginationDTO) {
        List<SalPersonType> salPersonType = iSalPersonTypeDao.querySalPersonTypePage(paginationDTO);
        int total = iSalPersonTypeDao.querySalPersonTypeCount();
        PageDTO<SalPersonType> PageDTO = new PageDTO<>();
        PageDTO.setRows(salPersonType);
        PageDTO.setTotal(total);
        return PageDTO;
    }

    @Override
    public int queryDataByCode(String code) {
        return iSalPersonTypeDao.queryDataByCode(code);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void insertSalPersonType(SalPersonType salPersonType) {
        salPersonType.setId(SysUtils.generateGuid());
        salPersonType.setCreateTime(String.valueOf(DateUtils.getCurrentTimeStamp()));
        salPersonType.setUpdateTime(String.valueOf(DateUtils.getCurrentTimeStamp()));
        iSalPersonTypeDao.insertSalPersonType(salPersonType);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateSalPersonType(SalPersonType salPersonType) {
        salPersonType.setUpdateTime(String.valueOf(DateUtils.getCurrentTimeStamp()));
        iSalPersonTypeDao.updateSalPersonType(salPersonType);
    }

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteSalPersonType(String id) {
        iSalPersonTypeDao.deleteSalPersonType(id);
    }

    @Override
    public List<SalPersonType> querySalPersonTypeAll(Map<String, Object> queryParam) {
        return iSalPersonTypeDao.querySalPersonTypeAll(queryParam);
    }

}
